﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using конфигуратор;

namespace Wpfконфигуратор.Визуализаторы
{
    /// <summary>
    /// Визуализатор MVVM модели
    /// </summary>
    public class ВизуализаторОснова : INotifyPropertyChanged
    {  
        //public event Action<ВизуализаторОснова> ВернутьЗначение;

        public IПеременная Переменная { get; set; }

        //private object _объект;
        public object Объект { 
            get { return Переменная.Значение; } 
            set {
                   Переменная.Значение = value;
                    ОбновитьСвойство( "Объект" );
                } 
        }

        public bool Редактируемый = true;// для Свойств тоько для чтения и ValueType = ложь
      
        public event PropertyChangedEventHandler PropertyChanged;
        public void ОбновитьСвойство (string имяСвойства)
        {                       
            if ( PropertyChanged != null )
                PropertyChanged( this, new PropertyChangedEventArgs( имяСвойства ) );
        }

    }

    public interface IПеременная
    {
        object Значение { get; set; }
        ОписаниеТипа ТипПеременной { get; }

    }
}
